from django import forms

from operation.models import UserAsk

import re


# 通过继承 model 生成form
class UserAskForm(forms.ModelForm):
    class Meta:
        model = UserAsk
        fields = ["name", "mobile", "course_name"]  # 配置需要哪些数据

    # 主动验证 手机号
    def clean_mobile(self):

        mobile = self.cleaned_data['mobile']  # 从通过验证的内置变量中获取数据

        REGEX_MOBILE = "^1[358]\d{9}|^147\d{8}$|^176\d{8}$"  # 手机号正则
        p = re.compile(REGEX_MOBILE)

        if p.match(mobile):
            print("------ 自定义验证通过 ------")
            return mobile

        else:
            # 抛出异常
            print("------ 自定义未验证通过 ------")
            raise forms.ValidationError("手机号码不合法", code="mobile_invalid")
